import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import QtQuick.Shapes 1.15

//ParaCalSubItem {
//    id: root
//    title: qsTr("校准")
//    width: 784
//    height: 338
//    property color btnColor: "#7080C0"
//    property bool gainCalOK:false
//    property int count:1
//    onSignalOK: {
//        if(paraCalLoader.visible){
//            return;
//        }
//        var currentWeight =Number(curValue.text)
//        if(currentWeight<0)
//        {
//            gainCalOKDialog.title=qsTr("输入值不能小于0！")
//            gainCalOKDialog.open()
//            return;
//        }
//        if(currentWeight > mymodbus.maxRange)
//        {
//            gainCalOKDialog.title=qsTr("输入值不能大于量程！")
//            gainCalOKDialog.open()
//            return;
//        }
//        paraCalLoader.visible=true
//        if(mymodbus.gainCalibration(cmbGainIndex.currentIndex,currentWeight)){
//            paraCalView.signalSuccess()
//        }
//        else{
//            paraCalView.signalFailed()
//        }
//        paraCalLoader.visible=false
//        miniKeyBoard.buttonClean()
//    }
//    onSignalNext: {
//    }
//    onSignalPre: {
//    }
//    Rectangle
//    {
//        width:800
//        height: 80
//        color:"transparent"
//    GridLayout{ //root中放置一个行布局，布局中放置3个方块
//        id: zeroCalibrationLayout
//        anchors.centerIn: parent
//        columnSpacing: 20 //间距
//        rows: 2//行数
//        columns: 4 //列数
////        MyComboBox
////        {
////            id:cmbGainIndex
////            Layout.preferredHeight: 30
////            Layout.row: 0
////            Layout.column: 0
////            Layout.columnSpan: 2
////            font.pixelSize: 20
////            width: 160
////            model:[qsTr("增益1"),qsTr("增益2"),qsTr("增益3"),qsTr("增益4")]
////        }
//        Button
//        {
//            id: btnCurValue
//            Layout.row:1
//            Layout.column:0
//            Layout.preferredWidth: 80
//            Layout.preferredHeight: 30
//            text: qsTr("当前值")
//            font.pixelSize: 18
//            background: Rectangle{
//                color: btnColor
//                    }
//            onClicked: {

//            }
//        }

//        Rectangle {
//            id: recCurValue
//            color: "transparent"
//            border.width: 0
//            border.color: "white"
//            Layout.row:1
//            Layout.column:1
//            Layout.columnSpan: 2
//            Layout.preferredWidth: 180
//            Layout.preferredHeight: 30
//            // 绘制一条边框
//            Shape {
//                anchors.fill: parent
//                ShapePath {
//                    strokeWidth: 3
//                    strokeColor: "white"
//                    strokeStyle: ShapePath.SolidLine
//                    startX: 0
//                    startY: recCurValue.height
//                    PathLine {
//                        x: recCurValue.width
//                        y: recCurValue.height
//                    }
//                }
//            }
//            TextInput{
//                id:curValue
//                anchors.fill: parent
//                color:"white"
//                font.pixelSize: 25
//                horizontalAlignment: Text.AlignHCenter
//                readOnly: true
//                MouseArea {
//                       anchors.fill: parent
//                       onClicked: {
//                       }
//                   }

//            }
//        }
//    }
//    }
//    MiniKeyBoard
//    {
//        id: miniKeyBoard
//        x: 34
//        y: 70
//        isNumber: true
//        textInput: curValue
//    }
//    MyBuzyIndicator{
//        anchors.centerIn: parent
//        id: gainCalLoader
//        visible:false
//    }
//    Dialog {
//        anchors.centerIn: parent
//        id: gainCalOKDialog
//        modal:true
//        closePolicy: "CloseOnEscape"
//        standardButtons: Dialog.Ok
//        title:qsTr("校准成功！")
//        onAccepted: {
//            gainCalOKDialog.close()
//        }
//        z:100
//    }
//}
ParaCalSubItem {
    id: root
    title: qsTr("校准")
    width: 784
    height: 338
    property color btnColor: "#7080C0"
    property bool gainCalOK:false
    property int currentIndex: 0
    property int count:0
    property double currentValue : 0
    onSignalOK: {
        if(paraCalLoader.visible){
            return;
        }
        if(curValue.text.length === 0)
        {
            gainCalOKDialog.title=qsTr("请输入当前值！")
            gainCalOKDialog.open()
            return;
        }
        var currentWeight =Number(curValue.text)
        if(currentWeight<0)
        {
            gainCalOKDialog.title=qsTr("输入值不能小于0！")
            gainCalOKDialog.open()
            return;
        }
//        if(currentWeight > mymodbus.maxRange)
//        {
//            gainCalOKDialog.title=qsTr("输入值不能大于量程！")
//            gainCalOKDialog.open()
//            return;
//        }
        paraCalLoader.visible=true
        currentValue = currentWeight;
        paraCalView.signalSuccess()
//        if(mymodbus.gainCalibration(cmbGainIndex.currentIndex,currentWeight)){
//            paraCalView.signalSuccess()
//        }
//        else{
//            paraCalView.signalFailed()
//        }
        paraCalLoader.visible=false
        //miniKeyBoard.buttonClean()
    }
    onSignalNext: {
    }
    onSignalPre: {
    }
    Rectangle
    {
        x: 0
        y: 0
        width:784
        height: 80
        color:"transparent"
    GridLayout{ //root中放置一个行布局，布局中放置3个方块
        id: zeroCalibrationLayout
        anchors.centerIn: parent
        columnSpacing: 20 //间距
        rows: 2//行数
        columns: 4 //列数
//        MyComboBox
//        {
//            id:cmbGainIndex
//            Layout.preferredHeight: 30
//            Layout.row: 0
//            Layout.column: 0
//            Layout.columnSpan: 2
//            font.pixelSize: 20
//            width: 160
//            model:[qsTr("增益1"),qsTr("增益2"),qsTr("增益3"),qsTr("增益4")]
//        }
        Button
        {
            id: btnCurValue
            Layout.row:1
            Layout.column:0
            Layout.preferredWidth: 80
            Layout.preferredHeight: 30
            text: qsTr("当前值")
            font.pixelSize: 18
            background: Rectangle{
                color: btnColor
                    }
            onClicked: {

            }
        }

        Rectangle {
            id: recCurValue
            color: "transparent"
            border.width: 0
            border.color: "white"
            Layout.row:1
            Layout.column:1
            Layout.columnSpan: 2
            Layout.preferredWidth: 180
            Layout.preferredHeight: 30
            // 绘制一条边框
            Shape {
                anchors.fill: parent
                ShapePath {
                    strokeWidth: 3
                    strokeColor: "white"
                    strokeStyle: ShapePath.SolidLine
                    startX: 0
                    startY: recCurValue.height
                    PathLine {
                        x: recCurValue.width
                        y: recCurValue.height
                    }
                }
            }
            TextInput{
                id:curValue
                anchors.fill: parent
                color:"white"
                font.pixelSize: 25
                horizontalAlignment: Text.AlignHCenter
                readOnly: true
                MouseArea {
                       anchors.fill: parent
                       onClicked: {
                       }
                   }

            }
        }
    }
    }
    WeigherCardGrid
    {
        y:109
        height:218
        width: 420
    }
    Text
    {
        id:gainCalTip
        x:10
        y:81
    }

    MiniKeyBoard
    {
        id: miniKeyBoard
        x: 434
        y: 81
        isNumber: true
        textInput: curValue
    }
    MyBuzyIndicator{
        anchors.centerIn: parent
        id: gainCalLoader
        visible:false
    }
    Dialog {
        anchors.centerIn: parent
        id: gainCalOKDialog
        modal:true
        closePolicy: "CloseOnEscape"
        standardButtons: Dialog.Ok
        title:qsTr("校准成功！")
        onAccepted: {
            gainCalOKDialog.close()
        }
        z:100
    }
}
